#!/bin/bash

daemon_name=tomcat6

. /etc/rc.conf
. /etc/rc.d/functions
. /etc/conf.d/${daemon_name}

case "$1" in
  start)
    stat_busy "Starting ${daemon_name} daemon"

    PID=$(get_pid 'jsvc.exec')
    if [ -z "$PID" ]; then
      [ -f /var/run/${daemon_name}.pid ] && rm -f /var/run/${daemon_name}.pid
      # RUN
      /usr/bin/jsvc \
        -Dcatalina.home=${CATALINA_HOME} \
        -Dcatalina.base=${CATALINA_BASE} \
        -Djava.io.tmpdir=/var/tmp/tomcat6/temp \
        -cp /usr/share/java/commons-daemon.jar:${CATALINA_HOME}/bin/bootstrap.jar:${CATALINA_HOME}/bin/tomcat-juli.jar \
        -user tomcat \
        -java-home ${TOMCAT_JAVA_HOME} \
        -pidfile /var/run/${daemon_name}.pid \
        -errfile /var/log/tomcat6/catalina.err \
        -outfile /var/log/tomcat6/catalina.out \
        ${CATALINA_OPTS} \
        org.apache.catalina.startup.Bootstrap

      if [ $? -gt 0 ]; then
        stat_fail
        exit 1
      else
        add_daemon ${daemon_name}
        stat_done
      fi
    else
      stat_fail
      exit 1
    fi
    ;;

  stop)
    stat_busy "Stopping ${daemon_name} daemon"
    # STOP
    /usr/bin/jsvc \
      -pidfile /var/run/${daemon_name}.pid \
      -stop \
      org.apache.catalina.startup.Bootstrap
    #
    if [ $? -gt 0 ]; then
      stat_fail
      exit 1
    else
      rm -f /var/run/${daemon_name}.pid &> /dev/null
      rm_daemon ${daemon_name}
      stat_done
    fi
    ;;

  restart)
    $0 stop
    sleep 3
    $0 start
    ;;

  status)
    stat_busy "Checking ${daemon_name} status";
    ck_status ${daemon_name}
    ;;

  *)
    echo "usage: $0 {start|stop|restart|status}"
esac

exit 0
